package diplomovka.graphCreator.modelParts;

import java.util.ArrayList;
import java.util.List;

public abstract class Type {

	private String name;
	private String packageName;
	private Class type;
	private int modifiers;
	private List<MInterface> interfaces = new ArrayList<MInterface>();
	private List<MAnnotation> annotations = new ArrayList<MAnnotation>();
	private List<MMethod> methods = new ArrayList<MMethod>();
	private List<MField> fields = new ArrayList<MField>();	
	private MClass supertype;	
	private List<MMethod> queriesMethods = new ArrayList<MMethod>();
	private String valueObjectTarget;

	public List<MMethod> getQueriesMethods() {
		return queriesMethods;
	}
	public void setQueriesMethods(List<MMethod> queriesMethods) {
		this.queriesMethods = queriesMethods;
	}
	public String getValueObjectTarget() {
		return valueObjectTarget;
	}
	public void setValueObjectTarget(String valueObjectTarget) {
		this.valueObjectTarget = valueObjectTarget;
	}

	public List<MAnnotation> getAnnotations() {
		return annotations;
	}

	public void addAnnotation(MAnnotation annotation) {
		annotations.add(annotation);
	}

	public List<MMethod> getMethods() {
		return methods;
	}

	public void addMethod(MMethod method) {
		methods.add(method);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Class getType() {
		return type;
	}

	public void setType(Class type) {
		this.type = type;
	}

	public int getModifiers() {
		return modifiers;
	}

	public void setModifiers(int modifiers) {
		this.modifiers = modifiers;
	}

	public List<MInterface> getInterfaces() {
		return interfaces;
	}

	public void addInterface(MInterface mInterface) {
		interfaces.add(mInterface);
	}

	public String getPackageName() {
		return packageName;
	}

	public void setPackageName(String packageName) {
		this.packageName = packageName;
	}

	public List<MField> getFields() {
		return fields;
	}

	public void setFields(List<MField> fields) {
		this.fields = fields;
	}

	public MClass getSupertype() {
		return supertype;
	}

	public void setSupertype(MClass supertype) {
		this.supertype = supertype;
	}	
	
	public void addField(MField field) {
		fields.add(field);
	}
}
